﻿using Ninject.Modules;
using ReAnimation.Graphics;
using ReAnimation.MVP.ViewInterfaces;
using ReAnimation.MVP.Views;

namespace ReAnimation.Modules
{
    public class ViewsModule: NinjectModule
    {
        public override void Load()
        {
            Bind<IMoleculeDrawer>().To<MoleculeDrawer>();
            Bind<IMainView>().To<MainForm>();
            Bind<ILoginView>().To<LoginDialog>();
            Bind<IChooseMoleculeView>().To<ChooseMoleculeForm>();
            Bind<ILinkingDialogView>().To<LinkingDialog>();
            Bind<IZMatrixTable>().To<ZMatrixTable>();
            Bind<INewMoleculeDialogView>().To < NewMoleculeDialog>();
            Bind<IMoleculesDisplayView>().To<MoleculesDisplayView>();
            Bind<IOpenFileDialogView>().To<OpenFileDialogView>();
            Bind<ISaveFileDialogView>().To<SaveFileDialogView>();
            Bind<IAnimationStepsView>().To<AnimationStepsView>();
            Bind<IAnimationProjectSettingsView>().To<AnimationProjectSettingsView>();
            Bind<ISceneManipulationView>().To<SceneManipulationView>();
            Bind<IAnimationStepSettingsView>().To<AnimationStepSettingsView>();
            Bind<INewAnimationDialogView>().To<NewAnimationDialog>();
            Bind<IVideoDialogView>().To<VideoDialog>();
            Bind<IMoleculeTransformMatrixView>().To<MoleculeTransformMatrixView>();
            Bind<ICameraPositionSettingsView>().To<CameraPositionSettingsView>();
            Bind<IApplicationSettingsView>().To<ApplicationSettingsView>();
            Bind<IMoleculeRotationAndTranslateView>().To<MoleculeRotationAndTranslateView>();
            Bind<IMoleculesVisualizationSettingsView>().To<MoleculesVisualizationSettingsView>();
        }
    }
}
